El sistema operativo carga explícitamente las entradas del TLB.
Cuando no se encuentra una página virtual en el TLB, en lugar de que la MMU se remira simplemente a las tablas de paginas para encontrar y obtener la referencia de página requerida, genera un fallo de TLB y deja que el sistema operativo se encargue del problema.
Éste debe encontrar la pagina, eliminar una entrada del TLB, introducir la nueva y reiniciar la instrucción que falló.
(Y desde luego, todo esto debe hacerse con unas cuantas instrucciones, porque los fallos de TLB podrían ocurrir con mucha mayor frecuencia que las fallos de página)
Resulta sorprendente que si el TLB tiene un tamaño razonable (digamos 64 entradas) para reducir la tasa de fallos, la administración por software del TLB es muy eficiente. La ganancia principal aquí es que la MMU es mucho más sencilla, lo que libera una cantidad considerable de área en el chip de la CPU para cachés y otras características que pueden mejorar el rendimiento.
PROBLEMA:
La forma normal de procesar un fallo de TLB, sea en hardware o en software, es ir a la tabla de páginas y realizar las operaciones de indexación necesarias para localizar la página a la que se hizo referencia. Lo malo de realizar esta búsqueda en software es que las páginas que contienen la tabla de páginas podrán no estar en el TLB, lo que causaría fallo de TLB adicionales durante el procesamiento. Estos fallos pueden reducirse manteniendo una caché grande (p. ej., 4K) en software de entradas de TLB en un lugar fijo cuya página siempre se mantiene en el TLB. Si primero se busca en el caché en software, el sistema operativo puede reducir sustancialmente los fallos de TLB.